package com.shenfa.dao.systemManager.role;

import java.sql.SQLException;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;

import com.ibatis.sqlmap.client.SqlMapClient;
import com.shenfa.bean.Emprole;
import com.shenfa.bean.Role;
@SuppressWarnings("unchecked")
public class RoleDao {

	@Autowired
	private SqlMapClient sqlMapClient;
	
	/**
	 * 获取某用户所有角色ID
	 * @param id
	 * @return
	 */	
	public List<String> getRoleIdListByPersonId(String id) {
		try {
			return sqlMapClient.queryForList("role_person_manager.getRoleIdListByPersonId",id);
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}
	/**
	 * 获取某用户所有角色对象
	 * @param id
	 * @return
	 */
	public List<Role> getRoleListByPersonId(String id) {
		try {
			return sqlMapClient.queryForList("role_person_manager.getRoleListByPersonId",id);
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}

	/**
	 *添加一个角色
	 */
	public String addRole(Emprole role) {
		try {
			sqlMapClient.insert("role_manager.add_role",role);
		} catch (SQLException e) {
			e.printStackTrace();
			return "-1";
		}
		return "0";
	}
	/**
	 * 修改一个角色
	 * @param role
	 * @return
	 */
	public int updata(Emprole role){
		try {
			return sqlMapClient.update("role_manager.edit_role",role);
		} catch (SQLException e) {
			e.printStackTrace();
			return 0;
		}
	}
	/**
	 * 根据角色查询功能列表
	 * @param role
	 * @return
	 */
	public List<String> qurfuncbyrole(String role) {
		try {
			return sqlMapClient.queryForList("role_manager.qur_funcbyrole",role);
		} catch (SQLException e) {
			e.printStackTrace();
			return null;
		}
	}
	/**
	 * 标记删除一个角色
	 * @param rid
	 * @return
	 */
	public int delRole(String rid){
		try {
			return sqlMapClient.delete("role_manager.del_role",rid);
		} catch (SQLException e) {
			e.printStackTrace();
			return -1;
		}
	}
	/**
	 * 根据角色ID查询其他信息
	 * @param roleId
	 * @return
	 */
	public Role getRole(String roleId){
		try {
			return (Role)sqlMapClient.queryForObject("role_manager.queryRole", roleId);
		} catch (SQLException e) {
			e.printStackTrace();
			return null;
		}
	}

}
